Updating information in network devices

ABSTRACT

A method for obtaining information includes retrieving in a network device a listing of available information update packages and automatically updating the network device based on the listing. Transferring information update packages can include determining whether a network device is using a computer network connection and transferring portions of the package to the network device only while the network device is not using the network connection.

BACKGROUND

[0001] This invention relates to updating information in networkdevices.

[0002] In push-based methods to update information (such as software,data or documents) in network devices file servers that store theinformation initiate the transfer of update packages to the networkdevices when the network devices become available.

[0003] In pull-based methods of distribution, the copying of an updatepackage from the server is initiated by the network device. Typically,the network device requests an update package from the server, downloadsthe package, and installs it.

[0004] In both of these methods, the communication bandwidth availableto the user diminishes for other applications running on the networkdevice while the transfer is in progress.

BRIEF DESCRIPTION OF THE DRAWINGS

[0005]FIG. 1 shows a computer network system.

[0006]FIG. 2 shows a listing file.

[0007]FIG. 3 is a flow chart.

[0008]FIG. 4 is a flow chart.

[0009]FIG. 5 shows an example of transferring information updatepackages over a computer network.

[0010]FIG. 6 shows a set of rules associated with conflicting clientcomputer instructions.

DETAILED DESCRIPTION

[0011] As shown in FIG. 1, a computer system 2 includes network devices3 and file servers 4, 5 that can communicate over a network 6. Eachnetwork device 3 has a downloader component 7 that controls theautomatic updating of information on that machine. A managing server 5stores a listing 8 that contains information about available updates forthe network devices. Update packages 9 can be stored on one or moreservers 4.

[0012] In one such system, the Internet is the network 6, web serversare the file servers 4, 5, and Internet appliances or personal computerswith connections to the Internet act as the network devices 3.

[0013] An example of the listing 8 kept on the managing server is shownin FIG. 2. In general, the listing 8 contains network device targetinginformation as well as descriptions of the available update packages 9.One section 30 in the listing 8 can list update packages that apply toall network devices. Other sections 32, 34 can list informationapplicable to individual network devices or groups of network devicesthat are defined (by listing) in another section 36 of the listing. Theinformation about the update packages 9 includes the name 38, version40, and location 42 of each package. extensible Markup Language (XML)can be used as the encoding language for the listing file. Filesexpressed in XML can be stored as readable text files, are easilytransported over existing networks through HyperText Transfer Protocol(“HTTP”), work well within existing networks, and are compatible withmany languages and development environments. Also, using XML, newinformation about update packages 9 can be added without affecting thedownloader components 7 already in place. Newer versions of thedownloader component 7 easily can be implemented to operate on olderversions of the listing 8.

[0014] As indicated by FIG. 3, to update information, the downloadercomponent 7 in a particular network device 3 obtains 11 the listing 8 ofavailable updates 9 from the managing server 5 through the network 6.This occurs automatically at at times that can be set by the user orpreset in the factory during manufacturing. The downloader 7 parses 12the listing 8 for install and uninstall instructions for that particularnetwork device 3.

[0015] The downloader 7 determines 13 whether any information stored onthe network device 3 has to be removed to permit the update to occur.The downloader 7 then removes 14 any such information. Next, thedownloader 7 identifies 15 what, if any, packages 9 are to be installedon the device 3 and on which servers 4 they are located. Thatinformation can be obtained from the listing file 8. The downloader 7then downloads 16 the packages 9 and installs 17 the packages 9 on thenetwork device 3.

[0016] After the packages 9 have been downloaded and installed, thedownloader 7 sends 18 a status report to the managing server 5 so that,if there were any problems with the transfer or installation, thesystem's administrator can correct them.

[0017]FIG. 4 illustrates an implementation of an automatic downloadingprocess in which each package 9 is transferred from the server 4 to thenetwork device 3 in portions. Before each portion is transferred, thedownloader component 7 initially checks 21 if the network device 3 isusing the network 6 connection 10. If the connection 10 is not in use,the downloader 7 increases 23 the size of the portion to be transferredand retrieves 24 the next portion of the package 9 from the server 4. Ifthe connection 10 is being used, the downloader 7 resets 26 the portionsize to its original state and enters 27 a sleep mode for a period oftime before checking 21 again. After transferring 23 each portion, thedownloader 7 determines 25 whether the entire package 9 has beentransferred. If transfer of the package 9 is still incomplete, thedownloader 7 returns to block 21 and repeats the process of checking 21the connection 10, increasing 23 the portion size, and retrieving 24 thenext portion.

[0018] During the process of automatically downloading the package, ifthe downloader 7 finds the connection 10 in use by the network device atany point, it will revert to the beginning of the process so as not todecrease the bandwidth available to the user.

[0019] An example of how such a process may occur is shown by FIG. 5.The package 9 in this example is thirteen kilobytes in size, and thedownloader component 7 is configured to have an initial portion size ofzero and to increase the portion size by one kilobyte (kB) each time itretrieves a portion of the package.

[0020] Assuming that the downloader 7 initially determines that theconnection 10 is unused by the network device 3, the downloaderincreases the portion size from zero to one kilobyte and transfers acopy of the first kilobyte 60 of the package 9 from the server to astorage 62 associated with the network device 3. The downloader 7 thendetermines that the transfer is unfinished and checks whether theconnection 10 is in use. Assuming that the connection still is unused,the downloader 7 increases the portion size to two kilobytes andtransfers the next portion 64 of the package 9.

[0021] Transfer of the package 9 is still unfinished, and again thedownloader 7 checks if the network device 3 is using the connection 10.Assuming that the connection 10 is now in use by the device 3, thedownloader 7 resets the portion size to its original size of zero andenters the sleep mode for a predetermined period of time. The downloader7 subsequently checks the connection 10, finds that it is unused,increases the portion size from zero to one kilobyte, and retrieves thenext portion 66 of the package 9. It then repeats the process ofchecking the connection 10, increasing the portion size by one kilobyte,and transferring 23 the portions 68, 70 and 72 until the entire package9 has been transferred.

[0022] In some other implementations, the increase in size of transfercan vary. The increases can be in different units than kilobytes, andcan increase by some formula such as twice or three times the previousportion size.

[0023] In some situations, a network device 3 may be instructed toperform conflicting operations by the listing 8. For example, a specificdevice might be instructed to install a package that all devices areinstructed to uninstall. FIG. 6 shows a set of rules that can be used toresolve such conflicts and can be implemented by the individualdownloaders 7.

[0024] The automatic downloading process described above can beimplemented, for example, in Internet or Web appliances, such as theIntel® Dot.Station™ Web appliance or other personal computersfunctioning as network devices connected to the Internet. The downloadercomponent 7 can use, for example, the HTTP GET command to obtain thelisting 8 and apportioned update packages 9. Other transfer methods suchas File Transfer Protocol (“FTP”) or NFS also can be used. However, byusing the HTTP byte range protocols with the transfer method describedabove, the size of the downloaded byte chunks can be throttled by thedownloader 7. This allows the user to have uninterrupted use of thenetwork during the update process. Also, if the connection 10 isinterrupted, HTTP allows the downloader 7 to resume the transfer fromwhere it left off, rather than having to restart the transfer from thebeginning.

[0025] Advantages of these techniques may include the ability forupdates to be made over the course of several user network sessions soas not to impinge on the network connection 10 bandwidth available tothe user. In addition, the automation of the distribution can greatlyreduce the amount of user participation required for the updatingprocess. All of these factors could create a higher probability ofsuccess in updating information on network devices.

[0026] Various features of the system can be implemented in hardware,software, or a combination of hardware and software. For example, someaspects of the system can be implemented in computer programs executingon programmable computers. Each program can be implemented in a highlevel procedural or object-oriented programming language to communicatewith a computer system. Furthermore, each such computer program can bestored on a storage medium, such as read-only-memory (ROM) readable by ageneral or special purpose programmable computer, for configuring andoperating the computer when the storage medium is read by the computerto perform the functions described above.

[0027] Other implementations are within the scope of the followingclaims.

What is claimed is:
 1. A method comprising: retrieving in a networkdevice a listing containing information about available informationupdate packages; and automatically updating the network device based onthe listing.
 2. The method of claim 1 wherein information updatepackages can contain software, data or document files.
 3. The method ofclaim 1 wherein automatically updating the listing includes retrievingspecified update packages based on the listing.
 4. The method of claim 1wherein the listing associates update packages with network devices towhich they apply.
 5. The method of claim 1 wherein updating the networkdevice includes: removing old versions of information; and installingnew versions of information.
 6. A method comprising: determining whethera network device is using a computer network connection; andtransferring portions of a package to the network device in a mannerbased on the determined usage of the network connection by the networkdevice.
 7. The method of claim 6 including adjusting the sizes ofdifferent portions of the package to be downloaded based on thedetermined usage of the network connection by the network device.
 8. Themethod of claim 7 wherein if the network connection is determined to bein use, the portion size is reset to an original state.
 9. A computersystem comprising: a computer network; a network device coupled to thenetwork; a file server coupled to the network and containing informationupdate packages; a managing server coupled to the network and containinga listing about information update packages located on the file servers;and wherein the network device is configured to obtain the listing andautomatically update the network device based on the listing.
 10. Thesystem of claim 9 wherein the information in the listing includes thelocations of servers on which the packages are stored.
 11. The system ofclaim 9 wherein the listing associates update packages with networkdevices and groups of network devices to which they apply.
 12. Thesystem of claim 9 wherein the downloader is configured to obtain thepackages by transferring the packages in portions.
 13. The system ofclaim 12 wherein the downloader increases the size of the packages whenthe network device is not using its connection to the network.
 14. Anarticle comprising a computer-readable medium that storescomputer-executable instruction for causing a computer system to: obtaina listing containing information about available information updatepackages from a managing server; and automatically update the networkdevice based on the listing.
 15. The article of claim 14 wherein thelisting contains information about where the available packages can beobtained by the network device.
 16. The article of claim 14 wherein thelisting specifies specific packages corresponding to particular networkdevices.
 17. The article of claim 14 wherein updating the network deviceincludes: removing old versions of information; and installing newversions of information.
 18. The article of claim 17 wherein the newinformation update packages are obtained over the network by: checkingif the network device is using a computer network connection; andretrieving portions of the package to the network device only while thedevice is not using the network connection.
 19. The article of claim 18wherein before portions of the packages are downloaded the size of theportion is increased.
 20. The article of claim 19 wherein if the networkis found busy the portion size is reset to its original state.
 21. Adevice comprising: a downloader component in a network device configuredto retrieve a listing stored on a managing server containing informationabout information update packages located on file servers, obtain thosepackages over a computer network connection, and install them on thenetwork device.
 22. The device of claim 21 wherein the downloadercomprises a software component stored in the network device's memory.23. The device of claim 21 wherein the downloader comprises a hardwarecomponent of the network device.
 24. The device of claim 21 wherein thelisting contains information about where available packages can beobtained by the downloader component.
 25. The device of claim 21 whereinthe listing specifies specific packages corresponding to particularnetwork devices.
 26. The device of claim 21 wherein the downloaderobtains the packages by transferring them in portions over the computernetwork connection.
 27. The device of claim 21 wherein the downloaderincreases the size of the packages when the network device is not usingits computer network connection.
 28. The device of claim 21 wherein thecomputer network connection is a connection to the Internet. 29 Thedevice of claim 21 where the listing contains information encoded usingeXtensible Markup Language (XML).
 30. The device of claim 21 wherein thedownloader transfers the packages over the computer network connectionusing the HyperText Transfer Protocal (HTTP) GET command.